package com.lyn.anr.pool

import com.lyn.anr.entity.InvokeInfo
import java.util.Queue
import java.util.concurrent.ConcurrentLinkedQueue

/**
 *
 * @author longyn 2025/07/15
 * @version 1.0.0
 */
object InvokeInfoPool {



    private val pool: Queue<InvokeInfo> = ConcurrentLinkedQueue()


    fun obtain(): InvokeInfo {
        val invokeInfo = pool.poll()
        if (invokeInfo != null) {
            invokeInfo.reset()
            return invokeInfo
        }
        return InvokeInfo()
    }

    fun recycling(info: InvokeInfo) {
        pool.offer(info)
    }
}